Apparatus and method for creating from discrete reports new reports with differentiated data

ABSTRACT

A computer-readable medium includes executable instructions to analyze a repository of individual reports to generate a first data set from a set of individual reports and a second data set from a set of individual reports. The first data set and the second data set are processed using comparative logic to produce a third data set.

This application is a continuation-in-part of the pending applicationentitled “Apparatus and Method for Creating New Reports from DiscreteReports”, U.S. Ser. No. 10/328,744, filed Dec. 23, 2002.

BRIEF DESCRIPTION OF THE INVENTION

This invention relates generally to the generation of reports. Moreparticularly, this invention relates to techniques for generatingconsolidated data sets based upon existing reports.

BACKGROUND OF THE INVENTION

There are a number of commercially available products to create reportsfrom data stored in a database. Business Objects Americas, Inc. of SanJose, Calif. sells a number of widely used report generation products,including Crystal Reports™, Crystal Analysis™, and Crystal Enterprise™.As used herein, the term report refers to information automaticallyretrieved (i.e., in response to computer executable instructions) from adata source (e.g., a database, a data warehouse, and the like), wherethe information is structured in accordance with a report schema thatspecifies the form in which the information should be presented. Asdiscussed below, a consolidated data set refers to a combined subset ofthe information from multiple reports; typically, the subset ofinformation maintains the structure specified by the report schema.

When using and sharing business intelligence report data it is oftendesirable to see not only a specific data value, but to understand thisvalue within a larger data context. For example, trends in time oftenprovide contextual guidance in evaluating the meaning of a data value.Likewise, a data value for one corporate department may be moresignificant when the user is provided with the same data value for othercorporate departments.

Similarly, a calculated difference between the two corporate departmentsor for one corporate department at two different points in time canprovide guidance in evaluating data. At times it may be useful for thiscalculated difference to also include additional calculations, such ascorrections for different currency values or other accounting factorsthat may affect the interpretation of the data. This information aboutthe trends and differences between data can be efficiently constructedby consolidated data sets based on existing reports.

At times it may also be desirable to provide this trend and differencedata within a non-report document or application. A non-report is anelectronic document that is constructed without the automatic retrieval(i.e., in response to computer executable instructions) of informationfrom a data source. Examples of non-report electronic documents includetypical business application documents, such as a word processordocument, a spreadsheet document, a presentation document, and the like.In these documents, manual intervention is typically required toestablish content and formatting. Presently, it is difficult to insertconsolidated data sets created from discrete reports into anotherelectronic document, such as a non-report document.

Reports can represent multiple instances, or snapshots, of data thatfacilitate constructing trend or differentiation data sets. By usingreports as a data source, limitations associated with existing reportgeneration tools are avoided. The creation of a new form of report ordata set does not require the rebuilding of the database schema, whichcan be complex and time consuming. Additionally, when using reports as adata source, the report generation tools are not required to merge datadirectly from multiple databases although the source reports themselvesmay be based on multiple databases. This problem is especially acute inthe case where the databases are from different vendors (e.g., Oracle®,IBM®, Microsoft®).

In view of the foregoing, it would be highly desirable to provide animproved technique for generating reports to overcome some of thelimitations associated with existing report generation tools.

SUMMARY OF THE INVENTION

The invention includes a computer-readable medium with executableinstructions to analyze a repository of individual reports to generate afirst data set from a set of individual reports and a second data setfrom a set of individual reports. The first data set and the second dataset are processed using comparative logic to produce a third data set.

The invention also includes a computer-readable medium with executableinstructions to analyze a repository of individual reports to generate afirst data set and a second data set. The first data set and the seconddata are processed using comparative logic to produce a third data setshowing the differences between the first data set and the second dataset.

The invention also includes a computer-readable medium with executableinstructions to analyze data selected from reports, report data,consolidated report data, and consolidated reports to produce a firstdata set and a second data set. The first data set and the second dataset are processed using comparative logic to produce a third data set.

BRIEF DESCRIPTION OF THE FIGURES

The invention is more fully appreciated in connection with the followingdetailed description taken in conjunction with the accompanyingdrawings, in which:

FIG. 1 illustrates the operation of consolidated report generation inaccordance with an embodiment of the invention.

FIG. 2 illustrates processing operations performed in accordance with anembodiment of the invention.

FIG. 3 is an example of portions of reports used to create aconsolidated report in accordance with an embodiment of the invention.

FIG. 4 illustrates a user interface that may be used to create aconsolidated report in accordance with an embodiment of the invention.

FIG. 5 illustrates another user interface that may be used to create aconsolidated report in accordance with an embodiment of the invention.

FIGS. 6-9 illustrate specific reports that may be used to create aconsolidated report in accordance with an embodiment of the invention.

FIG. 10 illustrates a consolidated report created from the informationof the specific reports of FIGS. 6-9 in accordance with an embodiment ofthe invention.

FIG. 11 illustrates the operation of expanding information in aconsolidated report in accordance with an embodiment of the invention.

FIG. 12 illustrates the result of drilling through information withinthe report of FIG. 11 to obtain a detailed base report.

FIG. 13 illustrates a computer network architecture that may be utilizedto implement embodiments of the invention.

FIG. 14 illustrates a consolidated report architecture that utilizes areport as a root object in accordance with an embodiment of theinvention.

FIG. 15 illustrates a consolidated report architecture that utilizes aroot object in accordance with an embodiment of the invention.

FIG. 16 illustrates a further embodiment of the system for creating newreports from discrete reports in which the consolidated data is insertedinto an electronic an document.

FIG. 17 illustrates processing operations performed in accordance withan embodiment of the invention for generating a consolidated data setand inserting the consolidated data set into an electronic document.

FIG. 18 illustrates a process for generating a data set with calculateddifferences and inserting the data set into an electronic document.

FIG. 19 illustrates a process for generating trend and differentiationdata when displaying either a consolidated data set or a data set basedon a single report.

FIG. 20 illustrates a graphical user interface in which a consolidatedreport can be integrated into an electronic document.

FIG. 21 illustrates a graphical user interface in which a consolidatedreport based on a calculated difference can be integrated into anelectronic document.

FIG. 22 illustrates specific reports used to construct a consolidateddata set.

FIG. 23 illustrates specific reports to construct a differentiation dataset.

FIG. 24 illustrates a range of potential report based data sources beingprovided to a data differentiator module to generate differentiated datawith metadata.

FIG. 25 illustrates a metadata augmenter acting as a data provider to arange of applications.

Like reference numerals refer to corresponding parts throughout theseveral views of the drawings.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 illustrates the operation of consolidated report generation inaccordance with an embodiment of the invention. In accordance with theprior art, a database 20 is accessed by a conventional report generationtool 22 to produce a set of reports 24A-24N. In the prior art, if a newreport is to be created, the report generation tool 22 must be used toaccess the database 20 to create a new report.

In accordance with the invention, a consolidated report generator 26 isused to produce a consolidated report 28 based upon the informationcontained in the previously generated reports 24A-24N. In other words,the consolidated report generator 26 does not access the data in thedatabase 20; rather, the consolidated report generator 26 uses the datain the reports 24A-24N as a data source to produce a new consolidatedreport 28.

FIG. 2 illustrates processing operations associated with an embodimentof the invention. Initially, a report repository of individual reportsis created or defined from database information (block 30). A reportrepository is simply a collection of reports. The individual reports maybe created with a conventional report generation tool, such as CrystalReports™, Crystal Analysis™, or Crystal Enterprise™, sold by BusinessObjects Americas, Inc. of San Jose, Calif.

By way of example, FIG. 3 illustrates four individual reports 32A-32D.Each individual report provides information for a quarter of a calendaryear. Thus, there is a first quarter report 32A, a second quarter report32B, a third quarter report 32C, and a fourth quarter report 32D. Inthis example, each report 32 has a customer field 34, an employee field36, an employee address field 38, and an orders field 40, as shown inFIG. 3. The orders field 40 has a set of sub-fields, including an orderID field 42, an order amount field 44, a customer ID field 46, a quartersales field 48, an order date field 50, a required date field 52, a shipdate field 54, a courier website field 56, a ship via field 58, ashipped field 60, a Purchase Order number field 62, and a paymentreceived field 64.

Returning to FIG. 2, the next processing operation is to selectconsolidated report criteria (block 70). FIG. 4 illustrates a graphicaluser interface 72 that may be used in accordance with an embodiment ofthe invention to facilitate this operation. The graphical user interface72 may be used to display a series of reports in a repository ofreports. In this example, the available reports 32A-32D correspond tothe reports 32A-32D shown in FIG. 3. In one embodiment of the invention,specific fields in the selected reports are then selected. The graphicaluser interface 74 of FIG. 5 shows a set of fields corresponding to thefields illustrated in the exemplary reports of FIG. 3. In this example,the quarter sales filed 48 is selected.

Alternate techniques may be used to select consolidated report criteria.In another embodiment of the invention, a prompt is provided for a datasource. For example, the data source may be a report file path or a pathof a directory that contains multiple report files. Preferably, a datacontext for a report path can be defined to limit the amount of viewedinformation. For example, a special character (e.g., “?”) can beappended to a report path to limit information to selected fields of areport. Thus, for example, assuming a base report grouped by region, tosee only the Quarterly sales records for the U.S. in a report, thefollowing report path and data context can be used: c:\\DirectoryName\Report Name.rpt?datacontext=/Country[US]. This example assumes abase report that is grouped by country and customer. Specifying the sumof sales in a country within the base report results a consolidatedreport listing this information. One can generate trend data for allcountries (e.g., datacontext=/Country[*]) or trend data for a selectedcountry (e.g., datacontext=/Country[US]).

In one embodiment of the invention, a consolidated report of theinvention is created through the following instruction sequence:

-   -   1. On a standard toolbar, click New.    -   2. In a Reports Gallery, click As a Blank Report and then OK.    -   3. In a Database dialog box, expand Create New Connection and        click OLE DB.    -   4. From a Provider list, select a Rowset Provider and click        Next.    -   5. In a Data Source field, enter the name of the reports file(s)        to use in the consolidated report.    -   6. Click Finish. (A data source called Reports is added to the        OLE DB folder.)    -   7. Add the Reports data source to the Selected Tables area and        click OK.

At this point, a consolidated data source is ready for use as any otherdata source for report creation. If the Reports node in the FieldExplorer is expanded, the fields from each report specified as a datasource may be displayed.

Preferably, special fields are provided to track specific informationabout the report fields in the data source. Example special fieldsinclude:

-   -   Report Path—This field shows the path and name of the report for        the current record.    -   Group Path—This field shows the group level and record number of        the current record in the report.    -   Record Number—This field shows the record number of the current        record in the report.    -   Data Date—This field shows the date the data was last refreshed        in the report.    -   Data Time—This field shows the time the data was last refreshed        in the report.

Returning now to FIG. 2, the next processing operation is to analyzeindividual reports within a report repository based upon selectedconsolidated report criteria (block 80). Executable code is invoked toperform this operation. This results in the generation of a consolidatedreport (block 82).

FIG. 3 illustrates a consolidated report 28. In particular, the figureillustrates a consolidated report 28 with a first quarter sales field90, a second quarter sales field 92, a third quarter sales field 94, afourth quarter sales field 96, and a total sales field 98, whichrepresents the sum of the individual sales fields. Observe here that theconsolidated report 28 was created based upon data in individual reports32A-32D, instead of accessing a database. Therefore, a new report isavailable without rebuilding the database schema.

The consolidated report 28 shows trends across data found in timestamped instances of other reports. Thus, the consolidated report 28 hascaptured snapshots of data over an extended period of time. It should befurther appreciated that the database source of the individual reportsused to generate the consolidated report 28 is irrelevant. Thus, theconsolidated report 28 can be created from individual reports that werederived from disparate databases. Accordingly, the invention allows themerging of data from multiple databases, having either similar ordisparate formats. It can also be appreciated that the invention reducesdatabase accesses as new reports are generated from individual reports,not database accesses. In addition, the invention facilitates thedecentralization of database computational activity. For example,individual reports may be created in branch offices and then transmittedto a central office. At the central office, a consolidated report isgenerated based upon the received reports from the branch offices.

Returning once again to FIG. 2, a final optional operation is displayed.In particular, an operation may be implemented to drill through to asource report (block 100). Preferably, each field in a consolidatedreport 28 has an associated link to its source report. By activatingthis link, the user is returned to the source report, thereby allowingdrill down processing. Arrow 102 of FIG. 3 illustrates a link betweenthe first quarter sales field 90 and its corresponding field 48 insource report 32A.

Now that the general features of the invention have been described,attention turns to a more specific example for the purpose of more fullyillustrating the features and advantages of the invention. FIG. 6illustrates a quarterly sales report. As shown in the design/previewwindow 103, this sales report specifies quarterly sales for NorthAmerica (NA), Europe (EU), and the Asia Pacific (Asia Pac). The reportwindow 104 illustrates a breakdown for North American sales by country,including the U.S. and Canada. The report also reflects a total salesamount for North America for the first calendar quarter ending Mar. 31,2002. Similarly, the report reflects a breakdown for European sales bycountry, including England, France, and Germany. A total sales volumefor the European region for the first quarter is also supplied. Similarinformation is provided for the Asia Pacific region. FIGS. 7-9 reflectthe same information for the subsequent quarters of 2002.

Using the previously described techniques, a consolidated report can beproduced from the individual reports of FIGS. 6-9. The resultantconsolidated report is shown in FIG. 10. The consolidated report 105 ofFIG. 10 illustrates quarterly sales and total sales for each region(i.e., Asia Pacific, Europe, and North America). The tabular numericdata is also supplied in a graph 106 in this example.

In accordance with an embodiment of the invention, the reports used togenerate the regional data can be invoked. By way of example, FIG. 11illustrates an expanded regional data report 107. In this example, theexpanded regional data is for Europe and includes individual quarterlyand total sales for England, France, and Germany.

In accordance with an embodiment of the invention, further expansion ordrill through to source reports can be accomplished. For example, if thelink associated with the third quarter sales for France is activated,then the user receives the report of FIG. 8. If the user activates theFrance link 108 of FIG. 8, then a detailed sales report for France inthe third quarter is supplied, as shown in FIG. 12. The detailed report109 of FIG. 12 provides information on the individual sales transactionsthat produced the third quarter sales total (i.e., $765,332.34) forFrance.

FIG. 13 illustrates a computer network architecture that may be utilizedto implement embodiments of the invention. The computer networkarchitecture 110 includes a client computer 112. The client computer hasa central processing unit 114 connected to a network connection circuit116 via a bus 118. The network connection circuit 116 is also connectedto a network transport medium 119, which may be any wired or wirelesstransport medium. A set of input/output devices (not shown) is alsoattached to the bus 118 to allow a user to input and view data.

A memory 120 is also connected to the bus 118. The memory 120 stores aset of executable programs. One executable program is a query module 122(e.g., a report generation tool). The query module 122 utilizes standardtechniques to produce a set of reports 124A-124N.

The query module 122 may access one or more databases resident on theclient computer 112. However, in this example, the query module 122accesses one or more databases resident on server computer 130. Servercomputer 130 includes a central processing unit 132 connected to anetwork connection circuit 134 via a bus 136. The network connectioncircuit 134 is also connected to the network transport medium 119. A setof input/output devices (not shown) is also attached to the bus 136 toallow a user to input and view data. A memory 138 is also connected tothe bus 136. The memory 138 stores one or more databases 140A-140N.

A consolidated report generator 150 may be executed from either theserver computer 130 or the client computer 112. In this example, theclient computer 112 includes a consolidated report generator 150 withexecutable instructions to implement the operations described herein.This results in the creation of one or more consolidated reports152A-152N. Additional consolidated reports may be formed from theinformation contained in individual consolidated reports.

Returning to FIG. 13, a report part insertion module 1000 includes a setof executable instructions to select a consolidated report from reports152, select a report part from an existing report (e.g., using thereport parts tool 118), and then insert the report part into anelectronic document, for example selected from a repository ofelectronic documents 1002. Ideally, a link between the report part andthe original report source is maintained, in accordance with anembodiment of the invention.

FIG. 14 illustrates a consolidated report architecture that utilizes areport as a root object in accordance with an embodiment of theinvention. A report object 160 is used to produce report instances162A-162N. The consolidated report generator 150 uses the report object160 to define fields for a consolidated report, as discussed inconnection with FIGS. 3-5. The consolidated report generator 150 alsoproduces a consolidated report 164 based upon data contained within thereport instances 162A-162N, as previously discussed.

FIG. 15 illustrates a consolidated report architecture that utilizes aroot object in accordance with an embodiment of the invention. A reportobject 160 is used to produce report instances 162A-162N. Theconsolidated report generator 150 is used to produce a first instance ofa consolidated report 164 and a second instance of a consolidated report166 based upon the data in the report instances 162. A consolidatedreport object 168 operates as a parent object to the consolidated reportinstances 164, 166.

FIG. 16 illustrates an embodiment of the concepts of the invention inwhich consolidated report data is embedded as a data set into anelectronic document (e.g., a non-report or application) whilemaintaining links to the original report source. The concepts of theinvention may be utilized to facilitate additional functionality such asdrill down or opening the original report.

As previously discussed and illustrated in FIG. 1, a database 20operates as a data source. Executable instructions associated with areport generator 22 are used to generate a set of reports 24A through24N. A consolidated report generator 26 (e.g., executable codeassociated with consolidated report generation) produces a consolidatedreport 28.

Alternately, as shown in FIG. 16, in one embodiment the consolidatedreport generator 26 includes executable code to produce consolidatedreport data as a data set 1608. In this embodiment, the generation ofthe data set and the report are separate processes and the generation ofa report is not a requirement. Observe that the consolidated reportgenerator 26 does not access the data in the database 20; rather, theconsolidated report generator 26 uses the data in the reports 24A-24N asa data source. Advantageously, report instances 24A-24N may containspecific saved historical data that is not necessarily stored within thedatabase.

In accordance with the invention, the consolidated report generator 26may include executable instructions forming a data provider 1610 and ametadata augmenter 1612 that operate to insert the consolidated reportdata 1608 within an electronic document 1618. The electronic document1618 may be an existing Graphical User Interface (GUI) application or anelectronic document, such as a non-report document.

In one implementation, the data provider 1610 is based on protocols,such as the Common Object Request Broker Architecture (CORBA), aComponent Object Model Dynamic Link Library (COM DLL) or a web service.The consolidated report data 1608 may be constructed such that itmaintains formatting from the original report source or so that it ispassed as unstructured data values.

The Metadata Augmenter 1612 includes executable instructions to addmetadata to the consolidated report data 1608. In one embodiment, themetadata is inserted as tags (such as Microsoft Smart Tags™ or customXML tags). In another embodiment, the metadata is stored in anassociated table or index. When the data set is inserted in a documentor application, the metadata maintains contextual report and data sourceinformation that links the inserted data points to the source report anddatabase data 20. This metadata is maintained if the data set is copiedto a different location within the same document or is copied from thefirst document into a second document.

In one embodiment, this metadata includes both data source and reportsource information, and the report source information includes thereport path, group path, and field for the data as well as the data dateand data time for the report (time stamp). The metadata is extensibleand additional information may be stored in the metadata includingsecurity information, data history, comments, data validity, and thelast presentation value for the data.

In one embodiment, an application plugin 1616 receives user orprogrammatic requests to refresh the data set, drill down, or open thesource report. Based on a request from the application or user, theapplication plugin passes metadata and parameters including any otherrequired information, such as user permissions, to the data provider1610, which then works with the consolidated report generator 26 inorder to refresh the data. The database 20 and report repository 24A-24Nmay be remote or stored locally on the user's computer. Additionally,the user can interact with the inserted consolidated report data bydrilling down on the source report data (for example moving from acountry level view of the data, to a state level view of the same data,to a city level view of the same data). During drill down the report isaccessed and a set of consolidated report data with the more detailedinformation is provided. In one embodiment, the updated report data ispresented in the same format as the consolidated report data that wasdisplayed before drill down.

In one embodiment, the application plugin 1616 receives user orprogrammatic requests to create a data set that differentiates betweentwo sets of values (for example, two report instances for corporatesales that have different dates). Based on a request from theapplication or user, the application plugin passes parameters and anyother required information, such as user permissions, to the dataprovider 1610 accesses the report repository 24A-24N, in order toretrieve the requested data sets. The data provider then passes the datato the data differentiator module 1614, which constructs calculatedvalues based on the provided values, and passes these calculated valuesto the Metadata Augmenter 1612 that augments the data with metadata andpasses it back either directly in the electronic document 1618 or to theelectronic document through an application plugin 1616.

FIG. 17 illustrates processing operations associated with executableinstructions for inserting a consolidated data set into an electronicdocument and opening a source report for a data point and drilling downon a data point.

Initially, consolidated report data is generated 1700. As illustrated inFIG. 16, the Consolidated Report Generator produces consolidated reportdata as a data set. This consolidated report data is passed by the dataprovider to the metadata augmenter 1702. The data set is augmented withmetadata that provides the data source and report source information1704. The metadata is extensible and may include other informationconcerning security or the last format in which the data was displayed.The consolidated data set is then inserted within the electronicdocument 1706. In one embodiment, this insertion is facilitated by anapplication plugin.

After the data set has been inserted within the electronic document orGUI, the user has the option of opening the report that is the sourcefor a data point within the inserted data set and then drilling on thedata from the report to see data for subgroups. In one embodiment, drilldown in the original data set causes an update to the trend data set.

When a request to open the original source report data is received 1708,the application plugin passes the metadata for the report context anddata context (and any other required parameters) to the data provider1710. The data provider selects the appropriate report from therepository and extracts the required data 1712 and passes it to themetadata augmenter 1714. The data is augmented with metadata 1716 and isinserted within the existing electronic document 1718.

After the original source report data is displayed, the user can requestdrill down on the original source report data set. In one embodiment, inaddition to refreshing the original source report data set to displaythe new subgroup values, the trend data that is displayed is alsoupdated. Either programmatically or based on user interaction a requestis received to drill down on one of the data values 1720. This requestto drill down on the data triggers the application plugin to pass themetadata for the report context and data context (and any other requiredparameters) to the data provider 1722. The data provider works with theconsolidated report generator to extract the required data 1724. In thecase of the original source report data, the data provider interactsdirectly with reports within the repository and in the case of aconsolidated data set, the data provider passes a request to theconsolidated report generator. The data provider passes the data to themetadata augmenter 1726. The data is augmented with metadata 1728 and isinserted within the existing electronic document 1730.

In one embodiment, the user can also change the parameters that filterwhich data from the report is displayed. This causes a refresh in thedata that is displayed within the electronic document, but does notrequire accessing the data provider. The full set of report data hasalready been cached and therefore the refresh takes place against thereport data that already exists in cache for the electronic document.The report data is redrawn to display the change in parameters.

FIG. 18 illustrates one embodiment of the process for creating aconsolidated report data set that has calculated differentiated values.The process starts with a document or application that contains aninserted data set 1800. FIG. 17 illustrates the process for generatingthis initial inserted data set. A request is received to compare theinstance displayed and another instance 1802. In one embodiment, thedisplayed instance is compared to an instance that has the most currentdata. In another embodiment, the displayed instance is compared to themost recent previous instance of the displayed report data as indicatedby a time stamp.

The application plugin passes the request including the metadata and anyother parameters to the data provider 1804. The data provider analyzesthe report instances to find the instances needed to meet the request1806. The data provider passes two row sets to the data differentiatormodule 1810. The data differentiator module compares the two row setsand constructs a third row set that shows the differences between thefirst two row sets and their values 1812. This third row set isaugmented with metadata 1814. In one embodiment, the metadata for thethird row set includes information about the report and data context forthe values used in the calculation.

In one embodiment, the data differentiator module includes executablecode to perform additional calculations such as corrections fordifferent currency values or other accounting factors that may affectthe interpretation of the data when it is combined.

The consolidated differentiation data set that shows the differencesbetween the two data sets is then either cached for future use orinserted within the electronic document 1816.

FIG. 19 illustrates one embodiment of the process for creating aconsolidated report data set wherein the process of creating additionaldata sets that contain trend information and calculated differentiatedvalues occurs at the same time that the primary data set is generatedand inserted. Initially a request to display report data is received1900. This request may be based on either a user interaction or aprogrammatic request. The application plugin passes the requiredparameters and any available metadata to the data provider 1902. Thedata provider constructs the initial data set based on the requirementsspecified 1904. In the case of a consolidated data set, the dataprovider works with the consolidated report generator. This initial dataset may be constructed based on consolidating data set from multiplereports or may be based on the data from a single report. After theinitial data set is constructed it is used as the basis for datasetsthat show trends and the differentiation between this initial data setand other sets 1906.

In the case where the trend information is requested for the initialdata set 1910, the application plugin passes the request to the dataprovider that works with the consolidated report generator to constructthe consolidated data set. The user specifies, or there is programmaticspecification of, the duration for which the trend should be analyzed1912. The application plugin passes the request including parameters andany available metadata to the data provider 1914. The data providerworks with the consolidated report generator and analyzes the reportinstances to find the report instances needed to meet the request 1916.The trend data set will reflect the scope of the trend informationrequested, which in one embodiment is based on a chronological timerange and in another embodiment is based on a specific number of reportinstances. The trend data is then augmented with metadata 1918 and iseither cached or inserted within the electronic document as specified bythe initial request 1920.

In the case where differentiation data is being generated 1922, theapplication plugin passes the request including parameters and anyavailable metadata to the data provider 1924. The data provider analyzesthe report instances in the repository to find the report instancesneeded to meet the request 1926. The data provider passes two row setsto the data differentiator module 1928. The data is compared in order togenerate a third row set of calculated values for the difference betweenthe data sets 1930. FIG. 18 provides more detail about this process. Thedata for the differences is augmented with metadata that providesinformation about the data context and report source 1932. Thisdifferentiation data is then either cached or inserted within theelectronic document as specified by the initial request 1934.

The process illustrated in FIG. 19 enables an initial data set (that maybe a consolidated data set or based on a single report), adifferentiation data set and a trend data set to be generated during theinitial request.

FIG. 20 illustrates a Graphical User Interface (GUI) embodiment of theinvention in which consolidated report data is inserted data within aMicrosoft Excel™ spreadsheet and ancillary data sets that show trendsand differentiation for this data are displayed.

The first panel 2024 is the Microsoft Excel application in which thereport data has been inserted. In the example, data from two differentdata sources is displayed. The top table of data 2026 is from a reportbased on a CRM (Customer Relationship Management) database. The secondtable 2028 is from a consolidated data set based on multiple instancesof a report that is based on a database of service request data.

The second panel 2010 contains two sections. One section 2012 displaysthe current report (or a report showing differentiated data, see FIG.21). The other section 2014 shows the report history which provides thetrend information for data points over time. Various options may beselected to alter the view of the data. In this embodiment, a chartoption 200 and a data table option 2002 are provided. An option 2004 mayalso be used to view changes in the report data (calculateddifferentiation). Option 2006 is used to access Microsoft Smart Tag™functionality, while option 2008 is used to display the appropriatesection of the full report in Crystal Reports. Interaction between thepanels 2024 and 2012 and 2014 can be used to update data views, insertdata in the document, and view data details.

FIG. 21 illustrates a Graphical User Interface (GUI) embodiment of theinvention in which differentiation between consolidated report data isdisplayed. FIG. 21 illustrates a section 2012 that corresponds tosection 2012 in FIG. 20. This results when the option to illustratedifferentiated data 2004 is selected. The graph shows the calculateddifferences between the values for the data set between two differentdates (May 14, 2004 and Jul. 14, 2004) with positive differences 2102shown above zero and negative differences 2104 (where the value wasgreater for May 14, 2004 than for Jul. 14, 2004) shown below zero. Inone embodiment, the secondary data set against which the primary dataset is differentiated is the most current data set, in anotherembodiment the secondary data set is the most recent data set previousto the displayed data set.

FIG. 22 provides an illustration of sample reports within a reportrepository 24A-24N used to build consolidated data sets that showtrends. Reports 2200, 2210, 2226, 2232, 2240 and 2260 all provideinformation for the same subject (Sales for Division A) at differenttimes. The time stamps (2201, 2211, 2227, 2233, 2241, 2261) indicate thetime at which the data in the report instance was saved. Reportselection from the repository uses various criteria to select reportsbased on their timestamps. For example, if the current report datadisplayed was from the Q1 2005 report 2260 and the criteria specifiedwas the previous three reports, the data would be consolidated fromreport 2260, report 2240, report 2232, and report 2226. Likewise, if thedata from report 2210 was displayed and the criteria specified toconsolidate data based on date time stamp proximity and the report withthe closest timestamp before the displayed report, the data would beconsolidated with data from 2200 and if the proximity was specified asclosest to the time stamp, but more recent, the consolidated data wouldcontain data from 2226. If the selection criteria specified merely themost current timestamp, then the consolidated data set would include thedata from 2260.

The structure of the report, in particular the data grouping, is used toalign the data within the data sets in some embodiments. As shown inreports 2210 and 2260 there is a summary group 2212/2262, that containssummary data grouped by country. Underneath this summary group2212/2262, there is a new group based on country. Within the countrygroup 2216/2266, data is further grouped and summarized by types ofsales, and then by groups within these sales types. Within the countrygroup, data is also broken down by region (state) and then grouped bytype of sales, and then by groups within these categories. Using thisstructure, it is possible to match fields within the groups, such as thefield for USA hardware sales 2218/2268 or CA hardware sales 2223/2273.In one embodiment, if a corresponding sub-field is not available in bothreports, a zero will be inserted as the value for the sub-field in thecase where that field is not available in the original report.

In one embodiment, the trend data is generated only for a specific groupsection of the report data. In FIG. 22, the consolidated data sets 2280and 2290 both contain the data from multiple reports based on their timestamp and based on the values for a specific group. For example, in theconsolidated data set showing the trend between Q1 2005 and Q1 2004 forDivision A 2280 the group that is displayed is the USA summary. Thisdata is placed in a table where the rows are identified based on thetime stamp 2282. Similarly, in the consolidated data set 2290 thatcompares the USA product sales a specific group level is consolidated.

When a consolidated data set for trend data 2280 is constructed it mapsthe data from multiple report instances into the consolidated data setbased on the logical structure in the original report instances.Although it contains data extracted from multiple reports combined in alogical manner, no calculations or processing in addition to augmentingthe data with metadata occurs. The consolidated data set 2290 shows aconsolidated data set that brings the values together from two reportinstances. The data sets that are used to produce this consolidated dataset could alternatively be processed with the data differentiator module1614 to create a differentiated data set.

FIG. 23 shows specific reports and illustrates the construction of adifferentiated data set based on these reports. In this case the reportsthat are used to create the differentiated data set are for differentsubjects, but these reports could also be for the same subject atdifferent points in time. The report structures are similar, whichenables meaningful comparisons and a common data structure. In the casewhere a parallel field is not available in one report, the value of zerois used. For example, report 2300 contains a summary value for Germany2306 and report 2260 does not contain a summary field for Germany. Whenthese values are differentiated to create a new data set 2330, theGermany summary 2336 contains the zero as the value for report 2260 andthe appropriate value 2306 for report 2300.

In one embodiment, when differentiated data sets are constructed theyprovide for a logical section of the report data based on the groupswithin the report. In this case, the differentiated data set 2330contains data for the summary fields and the differentiated data set2360 contains the data for the group USA. Based on this logic, thedifferentiated data set 2360 would not contain the data for states,(such as CA) as that would be generated as a separated differentiateddata set.

The differentiated data sets 2330 and 2360 are shown as containing threevalues one from report 2260, one from report 2300, and a calculatedvalue for the difference. The first two values are the ones provided tothe data differentiator module 1614 and the third values (2352, 2353,2354, 2355, 2356, 2363, 2365, 2367, 2369, 2371, 2373) are calculated bythe data differentiator module and passed to the metadata augmenter 1612in the differentiated data set.

FIG. 24 illustrates workflow associated with the data differentiatormodule 1614. Through the data provider 1610, the data differentiatormodule can accept input types such as reports 24A-24N, report data 2400,consolidated reports 28, or consolidated data sets 1608. In each case,the data differentiator module 1614 receives two sets of data. This datacan be of different input types that are based on report instance data.For example, one data set could be based on simple report data 2400 andthe other data set could be based on a consolidated data set 1608. Thedata differentiator module processes the data sets to calculate thedifferences and this calculation may include additional calculations.The data differentiator module passes the new data set to the metadataaugmenter 1612. The resulting differentiated data with metadata 2402 canbe passed to another software application.

FIG. 25 illustrates a further embodiment of the system in which theconsolidated data set is provided to other applications such as a reportdocument 2500, alerting application 2502, or a performance managementapplication 2506. Acting as a data provider the metadata augmenter 1612,provides the consolidated data to another application or document. Theprovided data includes the metadata that has been added to the data toprovide information about the report and data source.

Different object architectures can be used to implement variousconsolidated report functionality. For example, consolidated reports canbe programmed to run at a scheduled time. At the scheduled time, the newobject inherits the superset of all instances of the parent. Securitymay also be implemented through various object architectures. Forexample, a user may be prohibited from generating a consolidated reportunless the individual has access to the parent object.

An embodiment of the present invention relates to a computer storageproduct with a computer-readable medium having computer code thereon forperforming various computer-implemented operations. The media andcomputer code may be those specially designed and constructed for thepurposes of the present invention, or they may be of the kind well knownand available to those having skill in the computer software arts.Examples of computer-readable media include, but are not limited to:magnetic media such as hard disks, floppy disks, and magnetic tape;optical media such as CD-ROMs and holographic devices; magneto-opticalmedia such as floptical disks; and hardware devices that are speciallyconfigured to store and execute program code, such asapplication-specific integrated circuits (“ASICs”), programmable logicdevices (“PLDs”) and ROM and RAM devices. Examples of computer codeinclude machine code, such as produced by a compiler, and filescontaining higher-level code that are executed by a computer using aninterpreter. For example, an embodiment of the invention may beimplemented using Java, C++, or other object-oriented programminglanguage and development tools. Another embodiment of the invention maybe implemented in hardwired circuitry in place of, or in combinationwith, machine-executable software instructions.

The foregoing description, for purposes of explanation, used specificnomenclature to provide a thorough understanding of the invention.However, it will be apparent to one skilled in the art that specificdetails are not required in order to practice the invention. Thus, theforegoing descriptions of specific embodiments of the invention arepresented for purposes of illustration and description. They are notintended to be exhaustive or to limit the invention to the precise formsdisclosed; obviously, many modifications and variations are possible inview of the above teachings. The embodiments were chosen and describedin order to best explain the principles of the invention and itspractical applications, they thereby enable others skilled in the art tobest utilize the invention and various embodiments with variousmodifications as are suited to the particular use contemplated. It isintended that the following claims and their equivalents define thescope of the invention.

1. A computer-readable medium, comprising executable instructions to:analyze a repository of individual reports to generate a first data setfrom a plurality of individual reports and a second data set from aplurality of individual reports; and process said first data set andsaid second data set using comparative logic to produce a third dataset.
 2. The computer-readable medium of claim 1 further comprising,executable instructions to create said repository of individual reportsby processing data within a database.
 3. The computer-readable medium ofclaim 2, wherein said executable instructions to create said repositoryinclude executable instructions to create individual reports as timestamped instances of data within said database.
 4. The computer-readablemedium of claim 3, wherein said executable instructions to analyzeinclude executable instructions to analyze corresponding data pointsfrom reports with different time stamps.
 5. The computer-readable mediumof claim 1 further comprising, executable instructions to augment saidthird data set with metadata.
 6. The computer-readable medium of claim 5further comprising, executable instructions to insert said third dataset and metadata within an electronic document.
 7. The computer-readablemedium of claim 5, wherein said metadata provides information supplyinga data context.
 8. The computer-readable medium of claim 1, wherein saidexecutable instructions to process include executable instructions toproduce said third data set showing the difference between said firstdata set and said second data set.
 9. The computer-readable medium ofclaim 1, wherein said executable instructions to process includeexecutable instructions to perform additional calculations on data priorto using comparative logic to produce said third data set.
 10. Thecomputer-readable medium of claim 1, wherein said third data set isconstructed as a report instance.
 11. A computer-readable medium,comprising executable instructions to: analyze a repository ofindividual reports to generate a first data set from a plurality ofindividual reports and a second data set from a plurality of individualreports; and process said first data set and said second data set usingcomparative logic to produce a third data set showing the differencesbetween said first data set and said second data set.
 12. Thecomputer-readable medium of claim 11, wherein said third data set isconstructed as a report instance.
 13. The computer-readable medium ofclaim 11 further comprising, augmenting the data in said third data setwith metadata.
 14. The computer-readable medium of claim 13 furthercomprising, inserting said third data set and said metadata within anelectronic document.
 15. A computer-readable medium, comprisingexecutable instructions to: analyze data selected from reports, reportdata, consolidated report data, and consolidated reports to produce afirst data set and a second data set; and process said first data setand said second data set using comparative logic to produce a third dataset.
 16. The computer-readable medium of claim 15 further comprising,executable instructions to insert said third data set within anelectronic document.
 17. The computer-readable medium of claim 15,wherein said executable instructions to process produce a third data setwith metadata.
 18. The computer-readable medium of claim 17, whereinsaid metadata provides information supplying a data context.
 19. Thecomputer-readable medium of claim 15, wherein said executableinstructions to process include executable instructions to produce saidthird data set showing the difference between said first data set andsaid second data set.
 20. The computer-readable medium of claim 15,wherein said executable instructions to process include executableinstructions to perform additional calculations on data prior to usingcomparative logic to produce said third data set.